/*
 * Copyright 2010 Christoph Widulle (christoph.widulle@googlemail.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
 * License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS"
 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */



package com.android1.amarena2d.nodes.particle.effects;

import com.android1.amarena2d.commons.BlendFunction;
import com.android1.amarena2d.nodes.particle.GravityParticleEffectConfig;

public class SunEffect extends GravityParticleEffect implements ParticleEffect {

    public SunEffect() {
        this(350);
    }

    public SunEffect(int totalParticle) {
        super(new Config(totalParticle));
    }

    private static class Config extends GravityParticleEffectConfig {

        private Config(int totalParticle) {


            totalParticles = totalParticle;
            duration = -1;

            gravity.x = 0;
            gravity.y = 0;

            angle = 90;
            angleVar = 360;

            radialAccel = 0;
            radialAccelVar = 0;

            life = 1;
            lifeVar = 0.5f;

            speed = 20;
            speedVar = 5;

            startSize = 30.0f;
            startSizeVar = 10.0f;


            emissionRate = calcEmissionRate();

            startColor.r = 0.76f;
            startColor.g = 0.25f;
            startColor.b = 0.12f;
            startColor.a = 1.0f;
            startColorVar.r = 0.0f;
            startColorVar.g = 0.0f;
            startColorVar.b = 0.0f;
            startColorVar.a = 0.0f;
            endColor.r = 0.0f;
            endColor.g = 0.0f;
            endColor.b = 0.0f;
            endColor.a = 1.0f;
            endColorVar.r = 0.0f;
            endColorVar.g = 0.0f;
            endColorVar.b = 0.0f;
            endColorVar.a = 0.0f;

        }
    }

    @Override
    public BlendFunction getBlendFunction() {
        return BlendFunction.ADDITIVE_BLEND;
    }

    @Override
    public float getDefaultWidth() {
        return 10;
    }

    @Override
    public float getDefaultHeight() {
        return 10;
    }

}